import { region } from "@/components/SelectRegion/region.js";
/**
 * 递归查找指定 value 对应的 label
 * @param {Array} data 区域数据
 * @param {String} value 要查找的值
 * @returns {Object|null} 找到的对象或 null
 */
export const findItemByValue = function (data, value) {
  for (let item of data) {
    if (item.value === value) {
      return item;
    } else {
      if (item.children && item.children.length > 0) {
        const result = findItemByValue(item.children, value);
        if (result) {
          return result;
        }
      }
    }
  }
  return null;
};

/**
 * 根据六位数 value 查找对应的对象
 * @param {String} value 六位数的 value
 * @returns {String|null} 找到的对象
 */
export const findObjectBySixDigitValue = function (value) {
  if (value.length !== 6) {
    return null;
  }

  const firstLevelValue = value.slice(0, 2) + "0000";
  const secondLevelValue = value.slice(0, 4) + "00";
  const thirdLevelValue = value;

  const firstLevelItem = findItemByValue(region, firstLevelValue);

  if (!firstLevelItem) {
    return null;
  }
  //有三级但是选中一级的情况，直接返回
  if (firstLevelItem.value == value) {
    return firstLevelItem;
  }
  const secondLevelItem = findItemByValue(
    firstLevelItem.children,
    secondLevelValue
  );

  if (!secondLevelItem) {
    return null;
  }
  //有三级但是选中二级的情况，直接返回
  if (secondLevelItem.value == value) {
    return secondLevelItem;
  }
  const thirdLevelItem = findItemByValue(
    secondLevelItem.children,
    thirdLevelValue
  );
  return thirdLevelItem;
};
